package com.ruoyi.scm.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 供应链SCM-采购管理-采购合同对象 scm_purchase_contract
 *
 * @author Ryan
 * @date 2025-03-12
 */
@ApiModel("采购管理-采购合同对象")
public class ScmPurchaseContract extends BaseEntity {

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 合同编号 */
    @Excel(name = "合同编号")
    @ApiModelProperty("合同编号")
    private String contractNo;

    /** 申请id */
    @ApiModelProperty("申请id")
    private Long applicationId;

    /** 申请编号 */
    @Excel(name = "申请编号")
    @ApiModelProperty("申请编号")
    private String applicationNo;

    /** 供应商id */
    @ApiModelProperty("供应商id")
    private Long saleSupplierId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @ApiModelProperty("供应商名称")
    private String saleSupplierName;

    /** 联系人 */
    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    private String contacts;

    /** 联系方式 */
    @Excel(name = "联系方式")
    @ApiModelProperty("联系方式")
    private String contactNumber;

    /** 合同金额 */
    @Excel(name = "合同金额")
    @ApiModelProperty("合同金额")
    private Double contractAmount;

    /** 送货方式 */
    @Excel(name = "送货方式")
    @ApiModelProperty("送货方式")
    private String deliveryMethod;

    /** 签约日期 */
    @Excel(name = "签约日期")
    @ApiModelProperty("签约日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date signingDate;

    /** 申请人id */
    @ApiModelProperty("申请人id")
    private Long applicantId;

    /** 申请人名称 */
    @Excel(name = "申请人名称")
    @ApiModelProperty("申请人名称")
    private String applicantName;

    /** 申请日期 */
    @Excel(name = "申请日期")
    @ApiModelProperty("申请日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date applicantDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    @ApiModelProperty("申请状态")
    private Integer applicantStatus;

    /** 审核人id */
    @ApiModelProperty("审核人id")
    private Long approvedId;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    @ApiModelProperty("审核人名称")
    private String approvedName;

    /** 审核日期 */
    @Excel(name = "审核日期")
    @ApiModelProperty("审核日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date approvedDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty("审核状态")
    private Integer approvedStatus;

    /** 审核意见 */
    @Excel(name = "审核意见")
    @ApiModelProperty("审核意见")
    private String approvedComments;

    /** 采购合同明细信息 */
    @ApiModelProperty("采购合同明细信息")
    private List<ScmPurchaseContractItem> scmPurchaseContractItemList = new ArrayList<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Long getApplicationId() {
        return applicationId;
    }

    public void setApplicationId(Long applicationId) {
        this.applicationId = applicationId;
    }

    public String getApplicationNo() {
        return applicationNo;
    }

    public void setApplicationNo(String applicationNo) {
        this.applicationNo = applicationNo;
    }

    public Long getSaleSupplierId() {
        return saleSupplierId;
    }

    public void setSaleSupplierId(Long saleSupplierId) {
        this.saleSupplierId = saleSupplierId;
    }

    public String getSaleSupplierName() {
        return saleSupplierName;
    }

    public void setSaleSupplierName(String saleSupplierName) {
        this.saleSupplierName = saleSupplierName;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public Double getContractAmount() {
        return contractAmount;
    }

    public void setContractAmount(Double contractAmount) {
        this.contractAmount = contractAmount;
    }

    public String getDeliveryMethod() {
        return deliveryMethod;
    }

    public void setDeliveryMethod(String deliveryMethod) {
        this.deliveryMethod = deliveryMethod;
    }

    public Date getSigningDate() {
        return signingDate;
    }

    public void setSigningDate(Date signingDate) {
        this.signingDate = signingDate;
    }

    public Long getApplicantId() {
        return applicantId;
    }

    public void setApplicantId(Long applicantId) {
        this.applicantId = applicantId;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public Date getApplicantDate() {
        return applicantDate;
    }

    public void setApplicantDate(Date applicantDate) {
        this.applicantDate = applicantDate;
    }

    public Integer getApplicantStatus() {
        return applicantStatus;
    }

    public void setApplicantStatus(Integer applicantStatus) {
        this.applicantStatus = applicantStatus;
    }

    public Long getApprovedId() {
        return approvedId;
    }

    public void setApprovedId(Long approvedId) {
        this.approvedId = approvedId;
    }

    public String getApprovedName() {
        return approvedName;
    }

    public void setApprovedName(String approvedName) {
        this.approvedName = approvedName;
    }

    public Date getApprovedDate() {
        return approvedDate;
    }

    public void setApprovedDate(Date approvedDate) {
        this.approvedDate = approvedDate;
    }

    public Integer getApprovedStatus() {
        return approvedStatus;
    }

    public void setApprovedStatus(Integer approvedStatus) {
        this.approvedStatus = approvedStatus;
    }

    public String getApprovedComments() {
        return approvedComments;
    }

    public void setApprovedComments(String approvedComments) {
        this.approvedComments = approvedComments;
    }

    public List<ScmPurchaseContractItem> getScmPurchaseContractItemList() {
        return scmPurchaseContractItemList;
    }

    public void setScmPurchaseContractItemList(List<ScmPurchaseContractItem> scmPurchaseContractItemList) {
        this.scmPurchaseContractItemList = scmPurchaseContractItemList;
    }

    @Override
    public String toString() {
        return "ScmPurchaseContract{" +
                "id=" + id +
                ", contractNo='" + contractNo + '\'' +
                ", applicationId=" + applicationId +
                ", applicationNo='" + applicationNo + '\'' +
                ", saleSupplierId=" + saleSupplierId +
                ", saleSupplierName='" + saleSupplierName + '\'' +
                ", contacts='" + contacts + '\'' +
                ", contactNumber='" + contactNumber + '\'' +
                ", contractAmount=" + contractAmount +
                ", deliveryMethod='" + deliveryMethod + '\'' +
                ", signingDate=" + signingDate +
                ", applicantId=" + applicantId +
                ", applicantName='" + applicantName + '\'' +
                ", applicantDate=" + applicantDate +
                ", applicantStatus=" + applicantStatus +
                ", approvedId=" + approvedId +
                ", approvedName='" + approvedName + '\'' +
                ", approvedDate=" + approvedDate +
                ", approvedStatus=" + approvedStatus +
                ", approvedComments='" + approvedComments + '\'' +
                ", scmPurchaseContractItemList=" + scmPurchaseContractItemList +
                '}';
    }
}
